package com.cskaoyan.javase.object._5clone;

/**
 * @description: 空接口的意义
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 空接口是否实现改变了类型的定义,让某个类型成为了接口的子类,从而能够使用instanceof去判断
 *      然后完成一系列操作
 * clone当中Cloneable接口的实现原理就是这样的
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        A a = new A();
        judgeClazzImplEmpty(a);
    }

    //判断一个类是否实现了空接口
    public static void judgeClazzImplEmpty(Object o){
        if (o instanceof Empty) System.out.println("实现了空接口(允许完成克隆操做)");
        else System.out.println("没有实现空接口(不允许克隆,还要报错抛出异常)");
    }
}
interface Empty{
}
interface EmptySon extends Empty{}
class A implements EmptySon{}
